package com.ymm.lulutong.mapper;

import com.ymm.lulutong.entity.ComplaintOpsLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface ShipperComplaintOpsLogMapper {
    /**
     * 插入申诉操作记录
     *
     * @param complaintOpsLog 申诉操作日志
     */
    void add(ComplaintOpsLog complaintOpsLog);

    /**
     * 根据主键返回申诉操作记录
     *
     * @param logId 日志Id
     * @return 申诉操作记录
     */
    ComplaintOpsLog getByLogId(Long logId);

    /**
     * 根据货主Id、申诉Id和操作类型查找日志Id
     *
     * @param shipperId 货主Id
     * @param complaintsId   申诉Id
     * @param opsType   操作类型
     * @return 申诉操作记录
     */
    Long getLogIdByShipperIdAndComplaintsIdAndOpsType(@Param("shipperId") Long shipperId, @Param("complaintsId") Long complaintsId, @Param("opsType") Integer opsType);

    /**
     * 更改日志的业务执行状态
     * @param logId 日志Id
     * @param executionStatus 业务执行状态
     */
    void updateExecutionStatusByLogId(@Param(("logId")) Long logId, @Param("executionStatus") Integer executionStatus);


    /**
     * 删除申诉操作记录
     *
     * @param logId 记录Id
     */
    void deleteByLogId(long logId);
}
